Video and/or audio processing methods employ fingerprinting to identify and extract a video and/or audio (or portions thereof). For example, a video, or portions of the video, can be employed in comparing videos and/or video data. To generate fingerprints, hashes are typically generated from random numbers. Unfortunately, the process for generating random numbers can be time-consuming and process intensive. Especially challenging is the fact that a plethora of random numbers are typically generated, which can magnify problems associated with inefficiency in random number generation. For example, conventional sampling techniques typically involve verifying a sample against a distribution from which the sample is taken. In some cases, the sample is rejected and another sample must then be taken. Normally, a few percent (e.g. approximately 3%) of samples are rejected and need to be re-sampled. Unfortunately, although re-sampling is an infrequent event, the rejection approach typically requires computer code or hardware to implement a conditional, e.g., used in a loop. The presence of the condition can make pipelining difficult since pipelining works best when the computation being pipelined takes a fixed number of central processing unit (CPU) cycles. Accordingly, systems and methods for efficient random number generation are desired.